home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / virus / valert2.zip / VALERT.DOC < prev   
Text File  |  1993-12-07  |  26KB  |  462 lines

  1.   VALERT V2.0 is Copy(c)right 1989,1993 by Gary M. Raymond, New Orleans, La.
  2.  
  3.     Continuously Monitors DOS Vector Tables for any signs of alteration.
  4.              Another powerful utility from the DiskSave Series by
  5.  
  6.                               Gary M. Raymond
  7.                                 P.O.Box 8184
  8.                            New Orleans, La.  70182
  9.                                (504) 288-6550
  10.                             Compuserve 70613,3165
  11.  
  12.    ====================================================================
  13.  
  14.    Files Provided:
  15.    VALERT.COM        VALERT Utility
  16.    VALERT.DOC        This document.
  17.  
  18.    System requirements: PC/XT/AT, DOS 2.1 up, 128k+ ram, floppy
  19.    with hard drive, mono or color, any type graphic adapter.
  20.    NOTE: A Color monitor is recommended.
  21.  
  22.    For technical information about this utility see end of doc.
  23.    ====================================================================
  24.  
  25. Q  What is VALERT?
  26. A  VALERT is a very small, powerful TSR utility, written in assembler,
  27.    whose purpose is to monitor the critical DOS Vector table and alert
  28.    the operator if changes occur.  Should any application, for whatever
  29.    reasons, legitimate or not, take over any address on the vector
  30.    table, VALERT will alert you with a message on the screen.
  31.  
  32. Q  What is a Vector Table?
  33. A  Many system program subroutines (called Interrupts) of DOS and BIOS
  34.    (the software and firmware components of your personal computer's
  35.    operating system) are located by calls to a special table of
  36.    addresses that are created as the operating system is initially
  37.    loaded.  Because this table only "points" (like a vector) to the
  38.    location (addresses) of the actual code in higher memory, it is
  39.    called a Vector Table.
  40.  
  41. Q  How does the Vector Table work?
  42. A  For either the computer hardware or the programmer's code to use an
  43.    interrupt service, it must first be called.  This is accomplished with
  44.    the machine code hex instruction "CD" followed by a number that
  45.    ranges from 0 to 255 decimal.  This hex number, following the CD, is
  46.    called the interrupt service number.  Example: CD21 hex would invoke
  47.    the major DOS interrupt service 21 hex (which incidentally, has many,
  48.    many sub functions).  However, the call merely uses the interrupt
  49.    "number" as a means of finding (or pointing to) the actual address of
  50.    the code it desires to run.  The normal addressing system used by DOS
  51.    can require up to four bytes, usually consisting of a segment (two
  52.    bytes) and an offset (two more bytes).  Since the total number of
  53.    possible services can range up to 256 decimal, with each requiring a
  54.    four byte address, the size of the vector table itself (that must
  55.    contain all of the addresses) becomes 256 x 4 (1024) bytes long.  When
  56.    the cpu receives the instruction "CD21" it goes to location 21 x 4
  57.    (84 hex) in the table (which is 132 bytes up - 84 hex - from the zero
  58.    offset of the very beginning of RAM) to find the correct address of
  59.    the subroutine to jump to and begin executing.  The processor knows
  60.    to multiply the service number times four automatically.  This is the
  61.    simple gist of it.  For additional information, you may order my
  62.    "Anyone Can Learn Assembler" complete home study tutorial for five
  63.    dollars.
  64.  
  65. Q  When should I use VALERT?
  66. A  VALERT is basically a diagnostic and investigative tool.  Its
  67.    primary job is to alert you when a program or a virus has hooked into
  68.    the DOS vector table.  VALERT should be activated anytime you are
  69.    testing new and unfamiliar software.  Or, whenever you are curious as
  70.    to what Interrupts any application might hook into.
  71.  
  72. Q  Why would a virus hook into the vector table?
  73. A  A simple virus is a program similar to most other normal resident
  74.    programs.  A resident program cannot run unless it has a way of
  75.    being activated. Since you would not purposely load or run a virus
  76.    program, it must have an automatic method of triggering or running
  77.    itself once it is lodged in memory. There are many ways it can do
  78.    this. Example: Anytime you hit a key, you cause Interrupt 9 to run
  79.    automatically so DOS can determine what key you hit.  A virus could
  80.    replace the real address of Int 9 with its own address, then, when
  81.    you hit a key, check to see if a certain date has arrived; if it
  82.    has, it might destroy data on your hard drive, but if not, then it
  83.    would return control to the real Int 9 routine and keep waiting.
  84.    It can be that simple and it can be a lot more complicated.
  85.  
  86. Q  How do you use VALERT?
  87. A  You invoke VALERT by typing its name at the command prompt.  VALERT
  88.    can be loaded from any drive or directory as long as a DOS path
  89.    exists for the VALERT parent directory.  If you are not sure, place
  90.    VALERT in your DOS directory.  VALERT can be unhooked or disabled
  91.    in a similar fashion.  Type VALERT 12345 (the default password) and
  92.    VALERT removes itself from memory.
  93.  
  94. Q  Is VALERT safe to use?
  95. A  Absolutely! VALERT is a tiny passive TSR utility that does nothing
  96.    to alter your basic system operations in any way.  It is
  97.    essentially invisible to either DOS or the active application and
  98.    will not noticeably slow any operation.
  99.  
  100. Q  Tell me again what causes VALERT to activate?
  101. A  Before going resident VALERT makes a second copy of the critical DOS
  102.    Vector Table stored in low memory below BIOS.  VALERT then goes
  103.    resident and begins to scan and compare the real vector table against
  104.    the copy.  As long as the two tables compare identically, VALERT
  105.    remains silent.  But if so much as one bit in one byte changes
  106.    anywhere in the vector table, VALERT will inform you with a center
  107.    screen message. This entire process is basically instantaneous.
  108.  
  109. Q  How is VALERT effective in identifying a possible virus?
  110. A  Again, the majority of all simple viruses are in effect similar to
  111.    miniature TSR type programs themselves. The one major difference
  112.    between a normal program (that may legitimately hook into Vectors -
  113.    or a TSR) that will trigger VALERT is this: Once you disengage,
  114.    unhook, Exit or Quit the program, all Vectors should return to normal
  115.    and VALERT message should quit changing colors. If the VALERT message
  116.    continues to change color, either the program was poorly written (the
  117.    author forgot to unhook the vectors - a sign of very sloppy coding)
  118.    or you have an active virus. Should a more advanced virus cleverly
  119.    overwrite a system subroutine in memory, rather than hook the Vector
  120.    Table, you will need another of my system tools called CIALERT along
  121.    with VALERT. CIALERT does a pre and post crc comparison.
  122.  
  123. Q  Is this a bullet-proof or fool-proof virus detection scheme?
  124. A  Unfortunately, no.  There is really no such animal in my opinion.
  125.    But considering the huge size and slow speed of other scan type
  126.    virus detectors, VALERT is not too shabby by comparison.  VALERT is
  127.    just another tool to use in your bag of tricks.  VALERT is useless
  128.    if your system is already infected.  VALERT is a prevention
  129.    utility.
  130.  
  131. Q  What is the difference between VALERT and most virus SCAN utilities?
  132. A  Most scanners only work AFTER a new virus has been identified and
  133.    added to its scan list.  They are, unfortunately, generally useless
  134.    when scanning a newly released, and possibly infected,
  135.    "self-uncompressing in memory type" exe distribution file.  In other
  136.    words, scanners basically work after the fact.  VALERT can catch a
  137.    possible virus at the moment of infection when it is used correctly.
  138.  
  139. Q  What are the real facts concerning the threat of pc viruses?
  140. A  For the thirteen years I have been programming, here is what I have
  141.    observed and am still observing.   First, the virus problem, with
  142.    regard to IBM or clones, is nowhere near the scale you might be led
  143.    to believe based on the hype seen in the media.  There are many, many
  144.    areas of the U.S. where viruses have yet to appear.  Contrary to
  145.    the virus definitions used some years ago, the loose definition of a
  146.    virus today is any kind of code that can cause damage and replicate
  147.    itself.  This could easily qualify a poorly written program (with a
  148.    lot of bugs) as a virus or trojan, but nevertheless, that's what
  149.    some experts are insisting.
  150.  
  151. Q  Are you saying that virus precautions are a waste of time?
  152. A  No, not at all.  A word being used more and more in the business of
  153.    personal computers is "when" rather than "will".  Sooner or later, if
  154.    you stick with using personal computers long enough, you are going to
  155.    experience a virus.  I see many reasons for it.  First, there is the
  156.    explosion in PC sales that continues to rise almost exponentially
  157.    with every passing year.  Second, there is a recent noticeable
  158.    parallel rise in computer literacy as technology begins to filter
  159.    down more to the end-user levels.  Example: A clever person with
  160.    something as common as the latest release of PowerBasic or Pascal
  161.    could create a virus in less than an hour if they were motivated. And
  162.    third, the PC virus has become the nouveau substitute for "non violent"
  163.    protests and "disruption" among and by disgruntled employees,
  164.    competitors, associates, club members, anyone who who feels slighted,
  165.    abused or bullied.  The list of potential virus makers could include
  166.    anyone, anytime.
  167.  
  168. Q  Where is a virus most likely to come from?
  169. A  Many lobby organizations that back the establishment software
  170.    industries (like the Software Publishers Association - the "don't
  171.    copy that floppy" group) would have you believe viruses come from
  172.    Bulletin Boards.  Considering the very few cases ever linked directly
  173.    to Bulletin Boards, coupled with the 50,000 BBS'es now estimated to
  174.    be operating in the US alone, this is pure hysteria propaganda.
  175.    Shareware is costing the big software houses billions in lost sales
  176.    and they are simply not happy campers.  You figure out the rest.  You
  177.    are far more likely to get a virus-infected program by obtaining a
  178.    disk from an innocent (or otherwise) friend who wants to share a
  179.    program with you.  I suggest testing all shareware programs that
  180.    come into your possession through the exchanging of disks with
  181.    friends (or strangers for that matter). Legally, you should not be
  182.    swapping commercial software.  But, beware if you are!  In my
  183.    opinion, the majority of all viruses are passed via non-licensed
  184.    copies of commercial products.  Isn't it odd that in a perverse
  185.    sort of way, viruses are helping the big commercial software houses
  186.    stop piracy?  Ever wonder why the shareware industry is more active
  187.    in the anti-virus utility business as compared to the big software
  188.    houses? Well, if there is a bottom line here, you had better be a
  189.    Boy Scout and... Be prepared!
  190.  
  191. Q  I am told that a lot of normal application hooks into the vector
  192.    table; if so, would not these programs trigger VALERT?
  193. A  Yes, some applications will trigger VALERT, particularly DOS
  194.    management utilities.  This can actually be useful inasmuch as it is
  195.    a good way to recognize that VALERT is actually working.
  196.  
  197. Q  FALSE Alarms could be annoying; is there any way to prevent this?
  198. A  Yes, VALERT is NOT intended to be active at ALL times.  This is why
  199.    it is designed with the ability to disable itself when you no longer
  200.    require its services.  VALERT should be activated only when you are
  201.    going to load new or untried software for the first time.  Or,
  202.    whenever you wish to explore the workings of existing software.
  203.    Activating VALERT is as simple as typing its name at the command
  204.    prompt (no matter where you or it is located).
  205.  
  206. Q  What should I do if VALERT warns that a vector has been hooked
  207.    while trying new software?
  208. A  Right off, do not panic.  Remember, some programs, particularly those
  209.    written in assembler, hook into vectors routinely.  Directory Freedom
  210.    and Q-Edit (two common shareware programs) will trigger VALERT. Let
  211.    me repeat, the test is not simply that VALERT flashes its warning
  212.    message in changing colors, it's whether or not the color changes
  213.    stop or the warning message goes away AFTER you "Exit" or "unhook"
  214.    the program being tested. If the message FAILS to disappear or stop
  215.    changing color after you have "exited" or "unhooked" the program and
  216.    returned to DOS, this is the real WARNING! It means certain Vectors
  217.    are still hooked!  Even then, should you have a possible virus, most
  218.    Viruses seldom do anything very quickly. You usually will have
  219.    adequate time to take counter measures. Additionally, you should look
  220.    for any signs of unusual or suspect activity.  This could be your HD
  221.    or floppy light flashing when you would not expect it to.  If your
  222.    intuition tells you something is wrong, hit the power switch. Remove
  223.    the program floppy disk from the drive and replace the program disk
  224.    with a known, good, virus free bootable floppy. Then reboot the
  225.    computer. If the suspect program was already copied to a hard drive,
  226.    simply go back and delete it. If a virus was infecting the program,
  227.    this process, 99.99% of the time, will rid your system of it.
  228.  
  229. Q  Is there any kind of virus that could escape detection by VALERT?
  230. A  Anything is possible.  VALERT is simply another tool in your arsenal
  231.    of virus defenses.   If you are using two of my other DiskSave
  232.    utilities, BOOTSAVE and FATSAVE, along with VALERT, you are probably
  233.    100% safe.  The most insidious of all viruses (and also the most
  234.    uncommon) usually try to take permanent residence in the boot sector
  235.    of the default hard drive.  By using BOOTSAVE and BOOTBACK you can
  236.    restore the integrity of the boot code.  Some types of virus might
  237.    ignore the vector table and overwrite the memory area where the
  238.    system interrupt subroutines themselves are located.  In this case,
  239.    you will need CIALERT which does both a vector and crc integrity scan
  240.    of all os code in memory.  CIALERT is only available to registered
  241.    users of VALERT.
  242.  
  243. Q  How can I do a simple test of VALERT to insure it is working?
  244. A  After following the instructions for correct installation, load any
  245.    TSR utility that you already use and are familiar with.  Seconds after
  246.    going resident, VALERT should warn that vectors have been hooked.
  247.  
  248. Q  Why should a company or individual use VALERT?
  249. A  There are many PRACTICAL reasons for using VALERT.  It can aid in
  250.    the identification of virus-infected programs that might otherwise
  251.    escape your attention until it is too late.  It is useful in
  252.    detecting whether or not normal application programs hook into DOS
  253.    or BIOS services for diagnostic purposes. Advanced V-Alert will
  254.    even tell you which vectors are affected and give the newly
  255.    substituted addresses on screen.
  256.  
  257. Q  How is VALERT's unhook password determined?
  258. A  The shareware version of VALERT is preset with a password key of
  259.    "12345."  After registration, we will provide you with the method for
  260.    changing the code to any five digits of your choice.  Once you know
  261.    how to do it, a password change can be accomplished in less than five
  262.    seconds with the version of VALERT you already have!
  263.  
  264. Q  How is the password changed?
  265. A  The password cannot be changed unless the operator knows the current
  266.    active password.  This is generally enough security for most typical
  267.    environments.  Instructions are provided with registration.
  268.  
  269. Q  How much memory does VALERT require?
  270. A  Not even enough to be noticed (under two kbytes when resident).
  271.  
  272. Q  Since VALERT is a TSR, could it interfere with any other TSR's?
  273. A  No.  VALERT does not intercept the keyboard interrupt like most
  274.    ordinary TSR's.  VALERT makes no DOS or BIOS calls. VALERT is not
  275.    dependent on the use of a hot key or any special DOS commands to
  276.    operate.  VALERT does not care what TSR's are loaded as long as
  277.    VALERT is the LAST to load.  More importantly, VALERT can unhook
  278.    cleanly and properly by restoring all memory it previously
  279.    occupied.  Remember, you must always load VALERT as the last TSR,
  280.    for correct operation.
  281.  
  282. Q  Can VALERT be compromised by a virus?
  283. A  If a virus is ALREADY in your system, VALERT can be compromised.
  284.    However, by the very nature of how VALERT works, it is indirectly a
  285.    virus PREVENTION mechanism.  A computer virus cannot infect your
  286.    computer through the air.  It must gain physical access.  This is
  287.    almost always done by riding piggy back on a file you copy from an
  288.    infected diskette onto one of your mass storage devices.  If you
  289.    can detect the virus immediately after transfer, your odds for saving
  290.    data improve dramatically.   Although VALERT is not intended as an
  291.    anti-viral utility, it is probably one of the best defenses against
  292.    passing a virus to your system other than removing or disabling the
  293.    floppy drives from the cabinet of a work station.
  294.  
  295.    --------------------------------------------------------------------
  296.    CHANGING PASSWORDS: VALERT has the unique ability to allow its
  297.    registered users to change passwords.  To change the password, you
  298.    must be in the parent directory (the one where VALERT is located).
  299.    It takes less than a few seconds and is very easy to do.  Information
  300.    on the procedure is provided if you decide to use the utility and
  301.    obtain registration.
  302.    --------------------------------------------------------------------
  303.  
  304.    ====================================================================
  305.    V2.0  12/8/93 First public release
  306.    ====================================================================
  307.  
  308.                            ┌─────────┐
  309.                            │ MEMBER  │   Society of
  310.                            │  ┌──────┴──┐ Independent
  311.                            │  │         │   Shareware
  312.                            └──┤    ■    │     Authors
  313.                               │    ║    │
  314.                               └────╨────┘
  315.     This program is produced by a member of the Society of Independent
  316.     Shareware Authors (SISA).  The Society wants to ensure that all valid
  317.     shareware principles actually work for you and SISA members.  The
  318.     principle behind shareware distribution is simple: try before you
  319.     buy.  Society members agree to license all shareware for a minimum of
  320.     10 days, free of charge, to first-time users as an evaluation
  321.     period.  After 10 days, buyers are then obligated to license their
  322.     copy with the Society member.  Society members are obligated to
  323.     provide high quality, useful shareware, but are free to choose
  324.     whatever marketing methods suit their specific needs.  SISA-
  325.     sanctioned marketing methods include: demonstration versions;
  326.     providing printed documentation after purchase; registration keys
  327.     that unlock additional features not necessary to determine basic
  328.     usefulness; and providing bug fixes free of charge.  Any Shareware
  329.     author may become a member of SISA without cost by simply agreeing
  330.     to the above conditions and displaying, at their option, this logo
  331.     in their documentation.
  332.     ====================================================================
  333.  
  334.     WARRANTY:
  335.     Software:
  336.     Gary Raymond warrants that the software contained herein will
  337.     perform in substantial compliance with the documentation
  338.     accompanying the software.  If you report, in writing, a significant
  339.     defect to us, and we are unable to correct it within 90 days of the
  340.     date you report the defect, you may return the software and
  341.     accompanying materials, and we will refund the purchase price.
  342.  
  343.     Diskettes and Documentation:
  344.     Gary Raymond warrants all diskettes and documentation to be free
  345.     of defects in materials for a period of 30 days from the date of
  346.     purchase.  In the event of notification within the warranty period
  347.     of defects in any materials, Gary Raymond will replace the
  348.     defective diskette or documentation.
  349.  
  350.     Remedies:
  351.     The remedy for breach of the warranty shall be limited to
  352.     replacement and shall not encompass any other damages, including but
  353.     not limited to loss of profit, special, incidental, consequential,
  354.     or similar damages, losses, or claims.
  355.  
  356.     DISCLAIMER:
  357.     Gary Raymond specifically disclaims all other warranties, expressed
  358.     or implied, including but not limited to, implied warranties of
  359.     merchantability and fitness for a particular purpose with respect to
  360.     defects in the diskette and documentation, and the program license
  361.     granted herein, in particular, and without limiting operation of the
  362.     program license with respect to any particular application, use, or
  363.     purpose.   In no event shall Gary Raymond be liable for any loss of
  364.     profit or any other commercial damage, including but not limited to
  365.     special, incidental, consequential or other damages.
  366.  
  367.     GOVERNING LAW:
  368.     This statement shall be construed, interpreted, and governed by the
  369.     laws of the State of Louisiana.
  370.     ====================================================================
  371.  
  372.    Registering your copy will help continue the competitive advantages
  373.    of providing economical shareware.  Upon receipt of your payment I
  374.    will provide you with a copy of the latest version and notify you of
  375.    all future upgrades.  Your patronage is appreciated.
  376.  
  377.    My no-nonsense license:
  378.    ------------------------
  379.    Your one-time registration fee will license you to use VALERT on
  380.    any number of personal computers owned directly and personally by you
  381.    in any non-commercial environment.
  382.  
  383.    Re-distribution via electronic transmission, or down loading, is
  384.    allowed without further permission.  Re-distribution of the Shareware
  385.    version of VALERT, for a fee, is also allowed without further
  386.    permission as long as that cost is limited to no more than two
  387.    dollars per copy, if supplied on any physical disk media.
  388.  
  389.    The assembler source code for VALERT.COM is available for sale at
  390.    $50 per copy.  The source is based on the A86 assembler / compiler
  391.    but is generic enough to be compatible with most all assemblers
  392.    with very minor changes.
  393.  
  394.    Yes Gary, I can really make use of your program and would like to
  395.    register and obtain the latest version as well as get on your mailing
  396.    list for future upgrades and new releases!
  397.  
  398.    Product:
  399.    --------
  400.    VALERT V2.0  Private User License ........(USA only)........ $5.00
  401.    Registered users will receive A-VALERT.  Advanced V-Alert will not
  402.    only warn when vectors are altered but will give the vector offset
  403.    number as well as the new subroutine's (ISR) address! For information
  404.    about commercial and/or multiple site licensing, contact the
  405.    undersigned.
  406.  
  407.    Name_____________________________________________________________
  408.  
  409.    Mailing Address__________________________________________________
  410.  
  411.    City & State ___________________________________________________
  412.  
  413.    ZIP _____________________________ Phone _________________________
  414.  
  415.    Send registration check or money order to:
  416.  
  417.                               Gary M. Raymond
  418.                                 P.O.Box 8184
  419.                             New Orleans, La. 70182
  420.                                 504-288-6550
  421.                             Compuserve 70613,3165
  422.    ====================================================================
  423.  
  424.     TECH DATA:
  425.     This utility monitors the system Vector table in low memory starting
  426.     at segment 0000, offset 0000 through offset 03FF. VALERT hooks into
  427.     the timer of the cpu at the moment it goes resident. Then it begins
  428.     to compare the current or active vectors with the original table
  429.     which was previously copied into memory before going resident. The
  430.     vector table is 1024 bytes in length and is completely scanned in
  431.     less time than it takes to blink your eye, even on the older, low
  432.     speed PC's. VALERT uses no DOS or BIOS services itself. It uses
  433.     direct writes to video memory to inform the operator when a vector
  434.     has been hooked (overwritten). Since VALERT makes a copy of the
  435.     active Vector Table, any TRS utilities you normally use should be
  436.     loaded first, BEFORE VALERT reads and copies the table. Otherwise,
  437.     if VALERT is loaded first it will give false warnings when you load
  438.     other TSR's behind it. The "V-ALERT: Vector Altered!" message will
  439.     continue to display (and change color) every few seconds as long as
  440.     the altered Vector remains changed. Once the Vector is restored, the
  441.     message will no longer change color and or appear.  The registered
  442.     version (A-VALERT), will additionally provide information on what
  443.     vectors were changed as well as give you the SEG:OFF addresses for
  444.     new new or replaced vectors.
  445.  
  446.     If for any reason you wish to validate that you have an unaltered
  447.     original copy of VALERT call me during normal business hours (cst)
  448.     and I will give you the 32 bit crc calculation which you can then
  449.     compare with PkZip or any other crc generator. The crc32 code is
  450.     automatically supplied with all registered versions.
  451.  
  452.     ACKNOWLEDGEMENTS:
  453.     -----------------
  454.     To one of my best friends and machine code instructor, the Padre,
  455.     alias, Machine Man, whose many patient hours of coaching and prodding
  456.     over the years helped me learn assembler so that I could create this
  457.     and many other useful DOS utility. Also, to a handful of other
  458.     generous "Elmer's of Assembler" whose contributions over the years
  459.     have helped make my hack more efficient and elegant. Thanks guys!
  460.  
  461.                                 <EOF>
  462.